#ifndef _CUSTOMIZED_MAP_
#define _CUSTOMIZED_MAP_

#include <map>
#include <string>
#include "..\Exceptions\AttributeNotFoundException.h"
#include "..\enum\ObjectType.h"
#include "..\enum\ObjectTypeUtils.h"

using namespace std;

class CustomizedMap{
	
	public:
	
		map<string, string> getMap();
	
		CustomizedMap(){}

		CustomizedMap(map<string, string> map){this->customMap=map;}
	
		~CustomizedMap(){}

		string getAttribute(string key) throw (AttributeNotFoundException);
	
		map<string, string> customMap;

		int getAttributeQuantity();

		bool isValid(ObjectType objType, std::string type);

		bool isValidSquare();

		bool isValidSegment();

		bool isValidPosition();

		bool isValidTexture(ObjectType type);

		bool isValidBegin();

		bool isValidEnd();

		bool isValidCircle();

		bool isValidRectangle();

		bool isValidResolution();

		bool isValidScreenColor();

		bool isValidLineColor();

		bool isValidFigureColor();
};

#endif